Flash memory is a form of non-volatile memory that is used within a wide variety of digital devices. For example, flash memories are commonly used within personal computers, cellular telephones, digital cameras, personal digital assistants, MP3 players, and other devices. Flash memories can be used as data storage devices, in place of or supplemental to, for example, hard disks. They may also be used to store program instructions as firmware within a digital device. The basic input output system (BIOS) of a digital system, for example, is usually stored within a flash memory. The BIOS usually consists of a set of software routines that test hardware at startup, start the operating system, and support the transfer of data among hardware devices within a system. Programs stored in flash memories in digital systems commonly need to be updated to, for example, correct software bugs or add new functionality to the systems. As the communication capabilities of digital devices increase, security is becoming a major concern for information stored within flash memories in digital devices. There is a need for techniques and structures that are capable of efficiently updating flash memories within digital devices while also addressing security concerns.